package com.qixiaobao.insure.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.qixiaobao.common.core.domain.BaseEntity;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Description 保单信息
 * @Author yangxm
 * @Date 2025/6/16 15:46
 */
@Data
public class Insure extends BaseEntity {

    /** ID */
    private Long id;
    /** 方案ID */
    private Long customerMealId;
    /** 订单编号 */
    private String qxbOrderNo;
    /** 保单号 */
    private String insureNo;
    /** 保单号状态 */
    private String insureNoStatus;
    /** 供应商ID */
    private Long supplyId;
    /** 供应商全称 */
    private String supplyName;
    /** 供应商简称 */
    private String supplyShortName;
    /** 所属供应商 */
    private String belongToSupply;
    /** 匹配后供应商简称 */
    private String toSupplyShortName;
    /** 所属公司id */
    private Long belongCompanyId;
    /** 所属公司名称 */
    private String belongCompanyName;
    /** 被保人 */
    private String insurant;
    /** 付款单位ID */
    private Long payCompanyId;
    /** 付款单位 */
    private String payCompanyName;
    /** 客户ID */
    private Long customerId;
    /** 客户名称 */
    private String customerName;
    /** 套餐名称 */
    private String mealName;
    /** 套餐名称值 */
    private String mealNameVal;
    /** 伤残比例 */
    private String maimRatio;
    /** 伤残比例值 */
    private String maimRatioVal;
    /** 可扩展24小时 */
    private String extension;
    /** 可扩展24小时值 */
    private String extensionVal;
    /** 投保周期 */
    private String insurePeriod;
    /** 投保周期值 */
    private String insurePeriodVal;
    /** 投保方式 */
    private String insureType;
    /** 投保方式值 */
    private String insureTypeVal;
    /** 职业类别 */
    private String jobType;
    /** 职业类别值 */
    private String jobTypeVal;
    /**  猝死比例 */
    private String suddenDeathRatio;
    /**  猝死比例值 */
    private String suddenDeathRatioVal;
    /** 保安猝死 */
    private String guardSudden;
    /** 保安猝死值 */
    private String guardSuddenVal;
    /**  匹配类型（0手动，1自动）*/
    private String matchType;
    /** 匹配类型值 */
    private String matchTypeVal;
    /** 生效起期 */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date gurantBeginTime;
    /** 生效止期 */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date gurantEndTime;
    /** 保险费  */
    private BigDecimal copeInsureFeePrice;
    /** 投保人数 */
    private Integer addNum;
    /** 客服ID */
    private Long serviceId;
    /** 客服名称 */
    private String serviceName;
    /** 保险费总计 */
    private BigDecimal copeInsureFee;
    /** 手续费率 */
    private BigDecimal serviceRate;
    /** 方案备注 */
    private String remark;
    /** 保单文件状态  1：待传 2：已传 */
    private String insureFileStatus;
    private String insureFileStatusVal;
    private String insureFile;
    /** 凭证文件状态  1：待传 2：已传 */
    private String customerInsDecStatus;
    private String customerInsDecStatusVal;
    private String customerInsDec;
    /** 凭证下载标识 */
    private String templateDownloadFlag;
    /** 凭证模板文件  */
    private String templateDownloadFile;
    /** 推送时间 */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date pushTime;
    /** 财务计入（1:是，0:否，默认为是） */
    private String financeReckon;
    /** 财务计入值 */
    private String financeReckonVal;
    /** 保单结算状态(0待结算1待支付2已结算) */
    private String insureFeeSettle;
    /** 保单结算状态值 */
    private String insureFeeSettleVal;
    /** 保单结算时间 */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date insureFeeSettleTime;
    /** 回单金额 */
    private BigDecimal transAmount;
    /** 回单编号 */
    private String billNum;
    /** 付款日期 */
    @JsonFormat(pattern = "yyyy/MM/dd")
    private Date transDateTime;
    /** 匹配时间 */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date matchTime;
    /** 供应商保单 */
    private String supplierInsureFile;
    /** 原始保单文件url */
    private String originalInsureFileUrl;
    /** 保单模板ID */
    private String supplyTemplateId;
    /** 保单同步状态（0未同步1已同步2同步中） */
    private String insureFileConfirmFlag;
    /** 始保单文件上传状态 1：待传 2：已传 */
    private String originalInsureFileStatus;

    /** 订单编号集合 */
    private List<String> qxbOrderNoList;
}
